<!DOCTYPE html>
<html class="writer-html5" lang="en" data-content_root="../">
<head>
  <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>User Manual &mdash; The Logtalk Handbook v3.93.0-b01 documentation</title>
      <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=d75fae25" />
      <link rel="stylesheet" type="text/css" href="../_static/css/theme.css?v=19f00094" />
      <link rel="stylesheet" type="text/css" href="../_static/css/custom.css?v=396eccfe" />

  
  <!--[if lt IE 9]>
    <script src="../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
        <script src="../_static/jquery.js?v=5d32c60e"></script>
        <script src="../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
        <script src="../_static/documentation_options.js?v=c8100655"></script>
        <script src="../_static/doctools.js?v=9a2dae69"></script>
        <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="../_static/js/theme.js"></script>
    <!-- begin favicon -->
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png" />
    <link rel="manifest" href="/site.webmanifest" />
    <link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5" />
    <meta name="msapplication-TileColor" content="#355b95" />
    <meta name="theme-color" content="#ffffff" />
    <!-- end favicon -->
    
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="Declarative object-oriented programming" href="declarative.html" />
    <link rel="prev" title="The Logtalk Handbook" href="../index.html" />
   
</head>

<body class="wy-body-for-nav"> 
  <div class="wy-grid-for-nav">
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >

          
          
          <a href="../index.html" class="icon icon-home">
            The Logtalk Handbook
              <img src="../_static/logtalk.gif" class="logo" alt="Logo"/>
          </a>
              <div class="version">
                3.93.0
              </div>
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>
        </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
    
              <p class="caption" role="heading"><span class="caption-text">Contents</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">User Manual</a><ul>
<li class="toctree-l2"><a class="reference internal" href="declarative.html">Declarative object-oriented programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html">Main features</a></li>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html">Nomenclature</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html">Messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html">Objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html">Protocols</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html">Categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html">Predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html">Inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html">Event-driven programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html">Multi-threading programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="errors.html">Error handling</a></li>
<li class="toctree-l2"><a class="reference internal" href="reflection.html">Reflection</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html">Writing and running applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html">Printing messages and asking questions</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html">Term and goal expansion</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html">Documenting</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html">Debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html">Performance</a></li>
<li class="toctree-l2"><a class="reference internal" href="installing.html">Installing Logtalk</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html">Prolog integration and migration</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../refman/index.html">Reference Manual</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorial/index.html">Tutorial</a></li>
<li class="toctree-l1"><a class="reference internal" href="../faq/index.html">FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devtools/index.html">Developer Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../libraries/index.html">Libraries</a></li>
<li class="toctree-l1"><a class="reference internal" href="../ports/index.html">Ports</a></li>
<li class="toctree-l1"><a class="reference internal" href="../contributions/index.html">Contributions</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html">Glossary</a></li>
<li class="toctree-l1"><a class="reference internal" href="../bibliography.html">Bibliography</a></li>
<li class="toctree-l1"><a class="reference internal" href="../genindex.html">Index</a></li>
</ul>

    <p class="caption"><span class="caption-text">External Contents</span></p>
    <ul>
    <li class="toctree-l1"><a class="reference internal" href="../../apis/index.html">APIs</a></li>
    <li class="toctree-l1"><a class="reference internal" href="https://logtalk.org">Logtalk website</a></li>
    <li class="toctree-l1"><a class="reference internal" href="https://github.com/LogtalkDotOrg/logtalk3">GitHub repo</a></li>
    </ul>
  
        </div>
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../index.html">The Logtalk Handbook</a>
      </nav>

      <div class="wy-nav-content">
        <div class="rst-content">
          <div role="navigation" aria-label="Page navigation">
  <ul class="wy-breadcrumbs">
      <li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
      <li class="breadcrumb-item active">User Manual</li>
      <li class="wy-breadcrumbs-aside">
              <a href="https://github.com/LogtalkDotOrg/logtalk3/blob/master/docs/handbook/sources/userman/index.rst" class="fa fa-github"> Edit on GitHub</a>
      </li>
  </ul>
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
             
  <section id="user-manual">
<h1>User Manual<a class="headerlink" href="#user-manual" title="Link to this heading"></a></h1>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="declarative.html">Declarative object-oriented programming</a></li>
<li class="toctree-l1"><a class="reference internal" href="features.html">Main features</a><ul>
<li class="toctree-l2"><a class="reference internal" href="features.html#integration-of-logic-and-object-oriented-programming">Integration of logic and object-oriented programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#integration-of-event-driven-and-object-oriented-programming">Integration of event-driven and object-oriented programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#support-for-component-based-programming">Support for component-based programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#support-for-both-prototype-and-class-based-systems">Support for both prototype and class-based systems</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#support-for-multiple-object-hierarchies">Support for multiple object hierarchies</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#separation-between-interface-and-implementation">Separation between interface and implementation</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#private-protected-and-public-inheritance">Private, protected and public inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#private-protected-and-public-object-predicates">Private, protected and public object predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#parametric-objects">Parametric objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#high-level-multi-threading-programming-support">High level multi-threading programming support</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#smooth-learning-curve">Smooth learning curve</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#compatibility-with-most-prolog-systems-and-the-iso-standard">Compatibility with most Prolog systems and the ISO standard</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#performance">Performance</a></li>
<li class="toctree-l2"><a class="reference internal" href="features.html#logtalk-scope">Logtalk scope</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="nomenclature.html">Nomenclature</a><ul>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html#prolog-nomenclature">Prolog nomenclature</a></li>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html#smalltalk-nomenclature">Smalltalk nomenclature</a></li>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html#c-nomenclature">C++ nomenclature</a></li>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html#java-nomenclature">Java nomenclature</a></li>
<li class="toctree-l2"><a class="reference internal" href="nomenclature.html#python-nomenclature">Python nomenclature</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="messages.html">Messages</a><ul>
<li class="toctree-l2"><a class="reference internal" href="messages.html#operators-used-in-message-sending">Operators used in message-sending</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#sending-a-message-to-an-object">Sending a message to an object</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#delegating-a-message-to-an-object">Delegating a message to an object</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#sending-a-message-to-self">Sending a message to <em>self</em></a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#broadcasting">Broadcasting</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#calling-imported-and-inherited-predicates">Calling imported and inherited predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#message-sending-and-event-generation">Message sending and event generation</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#sending-a-message-from-a-module">Sending a message from a module</a></li>
<li class="toctree-l2"><a class="reference internal" href="messages.html#message-sending-performance">Message sending performance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="objects.html">Objects</a><ul>
<li class="toctree-l2"><a class="reference internal" href="objects.html#objects-prototypes-classes-and-instances">Objects, prototypes, classes, and instances</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#defining-a-new-object">Defining a new object</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#parametric-objects">Parametric objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#finding-defined-objects">Finding defined objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#creating-a-new-object-at-runtime">Creating a new object at runtime</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#abolishing-an-existing-object">Abolishing an existing object</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#object-directives">Object directives</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#object-relationships">Object relationships</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#object-properties">Object properties</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#built-in-objects">Built-in objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="objects.html#multi-threading-applications">Multi-threading applications</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="protocols.html">Protocols</a><ul>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#defining-a-new-protocol">Defining a new protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#finding-defined-protocols">Finding defined protocols</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#creating-a-new-protocol-at-runtime">Creating a new protocol at runtime</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#abolishing-an-existing-protocol">Abolishing an existing protocol</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#protocol-directives">Protocol directives</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#protocol-relationships">Protocol relationships</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#protocol-properties">Protocol properties</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#implementing-protocols">Implementing protocols</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#built-in-protocols">Built-in protocols</a></li>
<li class="toctree-l2"><a class="reference internal" href="protocols.html#multi-threading-applications">Multi-threading applications</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="categories.html">Categories</a><ul>
<li class="toctree-l2"><a class="reference internal" href="categories.html#defining-a-new-category">Defining a new category</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#hot-patching">Hot patching</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#finding-defined-categories">Finding defined categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#creating-a-new-category-at-runtime">Creating a new category at runtime</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#abolishing-an-existing-category">Abolishing an existing category</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#category-directives">Category directives</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#category-relationships">Category relationships</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#category-properties">Category properties</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#importing-categories">Importing categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#calling-category-predicates">Calling category predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#parametric-categories">Parametric categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#built-in-categories">Built-in categories</a></li>
<li class="toctree-l2"><a class="reference internal" href="categories.html#multi-threading-applications">Multi-threading applications</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="predicates.html">Predicates</a><ul>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#reserved-predicate-names">Reserved predicate names</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#declaring-predicates">Declaring predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#defining-predicates">Defining predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#definite-clause-grammar-rules">Definite clause grammar rules</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#built-in-methods">Built-in methods</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#predicate-properties">Predicate properties</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#finding-declared-predicates">Finding declared predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#calling-prolog-predicates">Calling Prolog predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#defining-prolog-multifile-predicates">Defining Prolog multifile predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="predicates.html#asserting-and-retracting-prolog-predicates">Asserting and retracting Prolog predicates</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="inheritance.html">Inheritance</a><ul>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html#protocol-inheritance">Protocol inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html#implementation-inheritance">Implementation inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html#public-protected-and-private-inheritance">Public, protected, and private inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html#multiple-inheritance">Multiple inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="inheritance.html#composition-versus-multiple-inheritance">Composition versus multiple inheritance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="events.html">Event-driven programming</a><ul>
<li class="toctree-l2"><a class="reference internal" href="events.html#definitions">Definitions</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html#event-generation">Event generation</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html#communicating-events-to-monitors">Communicating events to monitors</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html#performance-concerns">Performance concerns</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html#monitor-semantics">Monitor semantics</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html#activation-order-of-monitors">Activation order of monitors</a></li>
<li class="toctree-l2"><a class="reference internal" href="events.html#event-handling">Event handling</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="threads.html">Multi-threading programming</a><ul>
<li class="toctree-l2"><a class="reference internal" href="threads.html#enabling-multi-threading-support">Enabling multi-threading support</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#enabling-objects-to-make-multi-threading-calls">Enabling objects to make multi-threading calls</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#multi-threading-built-in-predicates">Multi-threading built-in predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#one-way-asynchronous-calls">One-way asynchronous calls</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#asynchronous-calls-and-synchronized-predicates">Asynchronous calls and synchronized predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#synchronizing-threads-through-notifications">Synchronizing threads through notifications</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#threaded-engines">Threaded engines</a></li>
<li class="toctree-l2"><a class="reference internal" href="threads.html#multi-threading-performance">Multi-threading performance</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="errors.html">Error handling</a><ul>
<li class="toctree-l2"><a class="reference internal" href="errors.html#raising-exceptions">Raising Exceptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="errors.html#type-checking">Type-checking</a></li>
<li class="toctree-l2"><a class="reference internal" href="errors.html#expected-terms">Expected terms</a></li>
<li class="toctree-l2"><a class="reference internal" href="errors.html#compiler-warnings-and-errors">Compiler warnings and errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="errors.html#runtime-errors">Runtime errors</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="reflection.html">Reflection</a><ul>
<li class="toctree-l2"><a class="reference internal" href="reflection.html#structural-reflection">Structural reflection</a></li>
<li class="toctree-l2"><a class="reference internal" href="reflection.html#behavioral-reflection">Behavioral reflection</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="programming.html">Writing and running applications</a><ul>
<li class="toctree-l2"><a class="reference internal" href="programming.html#starting-logtalk">Starting Logtalk</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#running-parallel-logtalk-processes">Running parallel Logtalk processes</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#source-files">Source files</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#multi-pass-compiler">Multi-pass compiler</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#compiling-and-loading-your-applications">Compiling and loading your applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#compiler-errors-warnings-and-comments">Compiler errors, warnings, and comments</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#loader-files">Loader files</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#libraries-of-source-files">Libraries of source files</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#settings-files">Settings files</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#compiler-linter">Compiler linter</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#compiler-flags">Compiler flags</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#reloading-source-files">Reloading source files</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#batch-processing">Batch processing</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#optimizing-performance">Optimizing performance</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#portable-applications">Portable applications</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#conditional-compilation">Conditional compilation</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#avoiding-common-errors">Avoiding common errors</a></li>
<li class="toctree-l2"><a class="reference internal" href="programming.html#coding-style-guidelines">Coding style guidelines</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="printing.html">Printing messages and asking questions</a><ul>
<li class="toctree-l2"><a class="reference internal" href="printing.html#printing-messages">Printing messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#message-tokenization">Message tokenization</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#meta-messages">Meta-messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#defining-message-prefixes-and-output-streams">Defining message prefixes and output streams</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#defining-message-prefixes-and-output-files">Defining message prefixes and output files</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#intercepting-messages">Intercepting messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#asking-questions">Asking questions</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#intercepting-questions">Intercepting questions</a></li>
<li class="toctree-l2"><a class="reference internal" href="printing.html#multi-threading-applications">Multi-threading applications</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="expansion.html">Term and goal expansion</a><ul>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#defining-expansions">Defining expansions</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#expanding-grammar-rules">Expanding grammar rules</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#bypassing-expansions">Bypassing expansions</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#hook-objects">Hook objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#virtual-source-file-terms-and-loading-context">Virtual source file terms and loading context</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#default-compiler-expansion-workflow">Default compiler expansion workflow</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#user-defined-expansion-workflows">User defined expansion workflows</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#using-prolog-defined-expansions">Using Prolog defined expansions</a></li>
<li class="toctree-l2"><a class="reference internal" href="expansion.html#debugging-expansions">Debugging expansions</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="documenting.html">Documenting</a><ul>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#entity-documenting-directives">Entity documenting directives</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#predicate-documenting-directives">Predicate documenting directives</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#describing-predicates">Describing predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#documenting-predicate-exceptions">Documenting predicate exceptions</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#processing-and-viewing-documenting-files">Processing and viewing documenting files</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#inline-formatting-in-comments-text">Inline formatting in comments text</a></li>
<li class="toctree-l2"><a class="reference internal" href="documenting.html#diagrams">Diagrams</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="debugging.html">Debugging</a><ul>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#compiling-source-files-in-debug-mode">Compiling source files in debug mode</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#procedure-box-model">Procedure box model</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#activating-the-debugger">Activating the debugger</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#defining-breakpoints">Defining breakpoints</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#defining-log-points">Defining log points</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#tracing-program-execution">Tracing program execution</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#debugging-using-breakpoints">Debugging using breakpoints</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#debugging-commands">Debugging commands</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#customizing-term-writing">Customizing term writing</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#context-switching-calls">Context-switching calls</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#debugging-messages">Debugging messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#using-the-term-expansion-mechanism-for-debugging">Using the term-expansion mechanism for debugging</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#ports-profiling">Ports profiling</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#debug-and-trace-events">Debug and trace events</a></li>
<li class="toctree-l2"><a class="reference internal" href="debugging.html#source-level-debugger">Source-level debugger</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="performance.html">Performance</a><ul>
<li class="toctree-l2"><a class="reference internal" href="performance.html#source-code-compilation-modes">Source code compilation modes</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#source-code-compilation-order">Source code compilation order</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#local-predicate-calls">Local predicate calls</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#calls-to-imported-or-inherited-predicates">Calls to imported or inherited predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#calls-to-module-predicates">Calls to module predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#messages">Messages</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#automatic-expansion-of-built-in-meta-predicates">Automatic expansion of built-in meta-predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#inlining">Inlining</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#generated-code-simplification-and-optimizations">Generated code simplification and optimizations</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#size-of-the-generated-code">Size of the generated code</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#circular-references">Circular references</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#debug-mode-overhead">Debug mode overhead</a></li>
<li class="toctree-l2"><a class="reference internal" href="performance.html#other-considerations">Other considerations</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="installing.html">Installing Logtalk</a><ul>
<li class="toctree-l2"><a class="reference internal" href="installing.html#hardware-and-software-requirements">Hardware and software requirements</a></li>
<li class="toctree-l2"><a class="reference internal" href="installing.html#logtalk-installers">Logtalk installers</a></li>
<li class="toctree-l2"><a class="reference internal" href="installing.html#source-distribution">Source distribution</a></li>
<li class="toctree-l2"><a class="reference internal" href="installing.html#distribution-overview">Distribution overview</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="migration.html">Prolog integration and migration</a><ul>
<li class="toctree-l2"><a class="reference internal" href="migration.html#source-files-with-both-prolog-code-and-logtalk-code">Source files with both Prolog code and Logtalk code</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html#encapsulating-plain-prolog-code-in-objects">Encapsulating plain Prolog code in objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html#converting-prolog-modules-into-objects">Converting Prolog modules into objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html#compiling-prolog-modules-as-objects">Compiling Prolog modules as objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html#dealing-with-proprietary-prolog-directives-and-predicates">Dealing with proprietary Prolog directives and predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html#calling-prolog-module-predicates">Calling Prolog module predicates</a></li>
<li class="toctree-l2"><a class="reference internal" href="migration.html#loading-converted-prolog-applications">Loading converted Prolog applications</a></li>
</ul>
</li>
</ul>
</div>
</section>


           </div>
          </div>
          <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
        <a href="../index.html" class="btn btn-neutral float-left" title="The Logtalk Handbook" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
        <a href="declarative.html" class="btn btn-neutral float-right" title="Declarative object-oriented programming" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>&#169; Copyright 1998-2025, Paulo Moura.</p>
  </div>

  Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    provided by <a href="https://readthedocs.org">Read the Docs</a>.
   

</footer>
        </div>
      </div>
    </section>
  </div>
  <script>
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script> 

</body>
</html>